home *** CD-ROM | disk | FTP | other *** search
- (*
- (* :Program. WVer.mod
- ** :Contents. creates a version-string from input files
- ** :Author. Bert Jahn
- ** :EMail. jah@pub.th-zwickau.de
- ** :Address. Franz-Liszt-Straße 16, Rudolstadt, 07404, Germany
- ** :History. 0.1 01.06.96
- ** :Copyright. Public Domain
- ** :Language. Oberon
- ** :Translator. Amiga Oberon 3.11 (Includes 40.15)
- *)
- *)
-
- MODULE WVer;
-
- IMPORT
- SYS := SYSTEM,
- conv := Conversions,
- d := Dos,
- ds := DosSupport,
- fs := FileSystem;
-
- CONST
- version = "$VER: WVer V0.1 (01.06.96) by Bert Jahn";
- template = "VERFILE,REVFILE,AUTO/S";
- defverfile = ".version";
- defrevfile = ".revision";
-
- TYPE
- Args = STRUCT (dummy: d.ArgsStruct)
- vfile : d.ArgString; (* File contains version *)
- rfile : d.ArgString; (* File contains revision *)
- auto : d.ArgBool; (* automative increasing revision *)
- END;
-
- VAR
- rd : d.RDArgsPtr; (* for ReadArgs *)
- args : Args;
- buffer : ARRAY 256 OF CHAR; (* the comment *)
- ver,rev : LONGINT;
- file : fs.File;
- bool : BOOLEAN;
-
-
- (* main *)
- BEGIN
- SYS.SETREG(8,SYS.ADR(version)); (* that the version string will linked *)
- IF d.base.lib.version < 37 THEN
- HALT(20);
- ELSE
- rd := d.ReadArgs(template,args,NIL);
- IF rd = NIL THEN
- ds.PrintFault;
- ELSE
- IF args.vfile = NIL THEN args.vfile:=SYS.ADR(defverfile); END;
- IF args.rfile = NIL THEN args.rfile:=SYS.ADR(defrevfile); END;
- IF fs.Open(file,defverfile,FALSE) THEN
- IF fs.ReadString(file,buffer) THEN
- bool := conv.StringToInt(buffer,ver);
- END;
- bool := fs.Close(file);
- END;
- IF fs.Open(file,defrevfile,FALSE) THEN
- IF fs.ReadString(file,buffer) THEN
- bool := conv.StringToInt(buffer,rev);
- END;
- bool := fs.Close(file);
- END;
- IF args.auto # 0 THEN
- INC(rev);
- conv.IntToStringLeft(rev,buffer);
- IF fs.Open(file,defrevfile,TRUE) THEN
- bool := fs.WriteString(file,buffer);
- bool := fs.Close(file);
- END;
- END;
- d.PrintF("%ld.%ld",ver,rev);
- d.FreeArgs(rd);
- END
- END
- END WVer.
-
-